package com.yidu.qianfeng.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yidu.qianfeng.common.bean.Vehicle.CarInfo;
import com.yidu.qianfeng.common.util.JsonMsgUtil;
import com.yidu.qianfeng.mapper.VehicleMapper;
import com.yidu.qianfeng.service.VehicleServiceInter;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * 车辆管理模块服务层实现类
 */
@Service("vehicleServiceImpl")//标注是服务层组件
public class VehicleServiceImpl implements VehicleServiceInter {

    @Resource(name = "vehicleMapper")//依赖注入dao层组件
    private VehicleMapper vehicleMapper;

    /**
     * 分页查询车辆信息表数据
     * @param page 页面
     * @param limit 页目
     * @return 结果对象
     */
    @Override
    public List<CarInfo> selectCarInfoPaing(int page, int limit) {
        return vehicleMapper.selectCarInfoPaing(page,limit);
    }

    /**
     * 查询车辆信息表的个数
     * @return 结果
     */
    @Override
    public Integer selectCarInfoCount() {
        return vehicleMapper.selectCarInfoCount();
    }


    /**
     * 动态sql查询车辆信息表
     * @param carInfo 车辆信息对象
     * @return 集合对象
     */
    @Override
    public List<CarInfo> dynamicSqlQuery(CarInfo carInfo) {

        return vehicleMapper.dynamicSqlQuery(carInfo);
    }

    /**
     * 新增车辆信息表
     * @param carInfo 车辆信息对象
     * @return 结果信息
     */
    @Override
    public String addVehicle(CarInfo carInfo) {
        int result = vehicleMapper.addVehicle(carInfo);

        return JsonMsgUtil.createJsonMessage(result, "新增成功", "新增失败");
    }

    /**
     * 删除车辆信息表数据
     * @param carNumber 主键
     * @return 结果信息
     */
    @Override
    public String deleteVehicleDate(String carNumber) {
        int result = vehicleMapper.deleteVehicleDate(carNumber);

        return JsonMsgUtil.createJsonMessage(result, "删除成功", "删除失败");
    }

    /**
     * 根据id查询车辆信息表数据
     * @param carNumber 主键id
     * @return 车辆信息表对象
     */
    @Override
    public CarInfo byIdQueryVehicle(String carNumber) {

        return vehicleMapper.byIdQueryVehicle(carNumber);
    }

    @Override
    public String updateVehicle(CarInfo carInfo) {
        int result = vehicleMapper.updateVehicle(carInfo);

        return JsonMsgUtil.createJsonMessage(result,"修改成功","修改失败");
    }

    /**
     * 根据分站id查询司机
     * @param substId 分站id
     * @return 车辆信息表集合对象
     */
    @Override
    public List<CarInfo> queryCarBySubst(String substId) {
        QueryWrapper<CarInfo> carInfoQueryWrapper = new QueryWrapper<>();
        carInfoQueryWrapper.eq("car_partof_subs", substId);
        List<CarInfo> carInfos = vehicleMapper.selectList(carInfoQueryWrapper);
        return carInfos;
    }
}
